using System;
using System.Collections.Generic;
using System.Text;
using System.Runtime.Serialization;
using com.creditos.be.liclEntities;

namespace com.creditos.be.liclBases
{  
    public class DeudaSBS : Entity , IComparable<DeudaSBS>
    {
        private string tipoArchivoField ="";

        public DeudaSBS()
        {

        }

        public DeudaSBS(Decimal CodCuentaSBSField, Decimal ImpReportSolesField, Decimal ImpReportDolaresField, string SubCuentaSBSField, string TipoMonedaField)
        {
            this.CodCuentaSBSField = CodCuentaSBSField;
            this.ImpReportSolesField = ImpReportSolesField;
            this.ImpReportDolaresField = ImpReportDolaresField;
            this.SubCuentaSBSField = SubCuentaSBSField;
            this.TipoMonedaField = TipoMonedaField;

        }
        public DeudaSBS(string nombreEntidadField , decimal ImpReportDolaresField ,decimal  ImpReportSolesField , decimal totalMonedaSolesField)
        {
            this.nombreEntidadField = nombreEntidadField;
            this.ImpReportDolaresField = ImpReportDolaresField;
            this.ImpReportSolesField = ImpReportSolesField;
            this.totalMonedaSolesField = totalMonedaSolesField ;
        }

        public DeudaSBS(string nombreEntidadField, decimal ImpReportDolaresField, decimal ImpReportSolesField, decimal totalMonedaSolesField, decimal porcentajeDeudaSolesField, decimal porcentajeDeudaDolaresField, decimal porcentajeTotalSolesField)
        {
            this.nombreEntidadField = nombreEntidadField;
            this.ImpReportDolaresField = ImpReportDolaresField;
            this.ImpReportSolesField = ImpReportSolesField;
            this.porcentajeDeudaSolesField = porcentajeDeudaSolesField ;
            this.porcentajeDeudaDolaresField = porcentajeDeudaDolaresField;
            this.porcentajeTotalSolesField = porcentajeTotalSolesField;
            this.totalMonedaSolesField = totalMonedaSolesField;
        }


        public DeudaSBS(string nombreEntidadField, decimal ImpReportDolaresField, decimal ImpReportSolesField, decimal porcentajeDeudaSolesField, decimal porcentajeDeudaDolaresField)
        {
            this.nombreEntidadField = nombreEntidadField;
            this.ImpReportDolaresField = ImpReportDolaresField;
            this.ImpReportSolesField = ImpReportSolesField;
            this.porcentajeDeudaSolesField = porcentajeDeudaSolesField;
            this.porcentajeDeudaDolaresField = porcentajeDeudaDolaresField;
        }

        private Int32 intOrigenSolicitudField;
        public Int32 OrigenSolicitud
        {
            get { return intOrigenSolicitudField; }
            set { intOrigenSolicitudField = value; }
        }

        private decimal intNumeroSolicitudField;
        public decimal NumeroSolicitud
        {
            get { return intNumeroSolicitudField; }
            set { intNumeroSolicitudField = value; }
        }

        private Int32 intCodigoIntegranteField;
        public Int32 CodigoIntegrante
        {
            get { return intCodigoIntegranteField; }
            set { intCodigoIntegranteField = value; }
        }

        private Int32 intCodigoConsultaField;
        public Int32 CodigoConsulta
        {
            get { return intCodigoConsultaField; }
            set { intCodigoConsultaField = value; }
        }

        public string TipoArchivo
        {
            get { return tipoArchivoField; }
            set { tipoArchivoField = value; }
        }

        private System.Decimal CodCuentaSBSField;        
        public System.Decimal CodCuentaSBS
        {
            get { return CodCuentaSBSField; }
            set { CodCuentaSBSField = value; }
        }

      
        private string TipoMonedaField ="";
        [Column("")]
        public System.String TipoMoneda
        {
            get { return TipoMonedaField; }
            set { TipoMonedaField = value; }
        }

        private System.Decimal ImpReportSolesField;
        [Column("DeudaSoles")]
        public System.Decimal ImpReportSoles
        {
            get { return ImpReportSolesField; }
            set { ImpReportSolesField = value; }
        }

        private System.Decimal ImpReportDolaresField;
        [Column("DeudaDolar")]
        public System.Decimal ImpReportDolares
        {
            get { return ImpReportDolaresField; }
            set { ImpReportDolaresField = value; }
        }

        private string nombreEntidadField = string.Empty ;
        [Column("Entidad")]
        public string NombreEntidad
        {
            get { return nombreEntidadField; }
            set { nombreEntidadField = value; }
        }

        private decimal diasMoraField;
        [Column("")]
        public decimal DiasMora
        {
            get { return diasMoraField; }
            set { diasMoraField = value; }
        }

        private DateTime reporteFechaField;
        [Column("")]
        public DateTime ReporteFecha
        {
            get { return reporteFechaField; }
            set { reporteFechaField = value; }
        }

        private string descripcionCuentaSBSField = string.Empty;
        [Column("")]
        public string DescripcionCuentaSBS
        {
            get { return descripcionCuentaSBSField; }
            set { descripcionCuentaSBSField = value; }
        }

        private string SubCuentaSBSField;
        [Column("")]
        public string SubCuentaSBS
        {
            get { return SubCuentaSBSField; }
            set { SubCuentaSBSField = value; }
        }

        private string DescripcionField = string.Empty ;
        [Column("")]
        public string Descripcion
        {
            get { return DescripcionField; }
            set { DescripcionField = value; }
        }

        private decimal porcentajeDeudaSolesField;
        [Column("PorcSoles")]
        public decimal PorcentajeDeudaSoles
        {
            get { return porcentajeDeudaSolesField; }
            set { porcentajeDeudaSolesField = value; }
        }

        private decimal porcentajeDeudaDolaresField;
        [Column("PorcDolar")]
        public decimal PorcentajeDeudaDolares
        {
            get { return porcentajeDeudaDolaresField; }
            set { porcentajeDeudaDolaresField = value; }
        }


        private decimal totalMonedaSolesField;        
        public decimal TotalMonedaSoles
        {
            get 
            { 
                string _srringFormat = string.Format("{0:n2}" , totalMonedaSolesField );
                decimal oNewtotalMonedaSolesField = decimal.Parse(_srringFormat);
                return oNewtotalMonedaSolesField; 
            
            }
            set { totalMonedaSolesField = value; }
        }

        private decimal porcentajeTotalSolesField;
        [Column("")]
        public decimal PorcentajeTotalSoles
        {
            get 
            {
                string _srringFormat = string.Format("{0:n2}" , porcentajeTotalSolesField);
                decimal oNewporcentajeTotalSolesField = decimal.Parse(_srringFormat);
                return oNewporcentajeTotalSolesField; 
            }
            set { porcentajeTotalSolesField = value; }
        }

        #region Miembros de IComparable<DeudaSBS>

        public int CompareTo(DeudaSBS other)
        {
            return this.CodCuentaSBS.CompareTo(other.CodCuentaSBS);
        }

        #endregion
    }
}
